#ifndef QXREPORTTABLECELL_H
#define QXREPORTTABLECELL_H

#include <QObject>

class QXREPORT_EXPORT QXReportTableCell : public QObject
{
    Q_OBJECT
public:
    explicit QXReportTableCell(QObject *parent = nullptr);

    // 单元格文本
    QString text();
    void setText(const QString& text);

    // 设置单元格跨度
    int rowSpan();
    void setRowSpan(int span);

    int columnSpan();
    void setColumnSpan(int span);

    // 单元格内边距
    int leftMargin();
    int topMargin();
    int rightMargin();
    int bottomMargin();
    void setMargins(int iLeftMargin, int iTopMargin, int iRightMargin, int iBottomMargin);

    // 自动内边距
    bool autoMargin();
    void setAutoMargin(bool bEnable);

    // 计算换行时，文本的最小高度
    int getTextMinHight(const QFont& font, int flag, int width);

signals:

private:
    int m_iRowSpan;
    int m_iColumnSpan;

    // margins
    bool m_bAutoMargin;
    int m_iLeftMargin;
    int m_iTopMargin;
    int m_iRightMargin;
    int m_iBottomMargin;

    QString m_strText;
};

#endif // QXREPORTTABLECELL_H
